class Solution {
public:
    int hammingDistance(int x, int y) {
        // return __builtin_popcount(x ^ y);
        int tmp = x ^ y, cnt = 0; // 不同则为1
        while (tmp) 
        {
            tmp &= (tmp - 1);
            ++cnt; // 依次左移到最低位
        }
        return cnt;
    }
};